// 生产计划 商品详情

<template>
  <view class="page">
    <mes-form :mesForm="mesFormTop"></mes-form>
    <mes-form :mesForm="remark"></mes-form>
  </view>
</template>

<script>
export default {
  data() {
    return {
      index: '',
      remark: {
        top: 20,
        row: {
          remark: ''
        },
        items: [
          {
            title: '备注',
            slots: {
              field: 'remark'
            }
          }
        ]
      },
      mesFormTop: {
        // 表单数据
        row: {},
        // 渲染数据
        items: [
          {
            title: '商品编号',

            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'goods_code'
            }
          },
          {
            title: '商品名称',

            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'goods_name'
            }
          },
          {
            title: '商品单位',

            // type 不传默认为普通文字
            slots: {
              field: 'unit_name'
            }
          },
          {
            title: '商品属性',
            // type 不传默认为普通文字
            slots: {
              field: 'attr_name'
            }
          },
          {
            title: '仓库',
            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'stores_name'
            }
          },
          {
            title: '可用库存',
            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'allow_stock'
            }
          },
          {
            title: '批次',
            slots: {
              field: 'batch_name'
            }
          },
          {
            title: '生产日期',
            slots: {
              field: 'manufacture',
              type: 'date',
              getSerial: (serial) => {
                console.log('选择的序列号', serial)
                this.mesFormTop.row.serial = serial
                this.mesFormTop.row.number = serial.length
              }
            }
          },
          {
            title: '保质期(天)',
            slots: {
              field: 'guarantee'
            }
          },
          {
            title: '有效期至',
            slots: {
              field: 'validity',
              type: 'date',
              getSerial: (serial) => {
                console.log('选择的序列号', serial)
                this.mesFormTop.row.serial = serial
                this.mesFormTop.row.number = serial.length
              }
            }
          },
          {
            title: '数量',

            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'number'
            }
          },
          {
            title: '基本单位',

            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'default_unit_name'
            }
          },
          {
            title: '基本数量',
            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'basic_nmber'
            }
          },
          {
            title: '单价',

            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'unit_price'
            }
          },
          {
            title: '金额',

            // 右侧组件
            slots: {
              // 绑定表单数据中的属性
              field: 'all_money'
            }
          }
        ]
      }
    }
  },
  methods: {
    // 获取变动价格
    async formatInfo(now_field) {
      const postForm = {
        // 商品编号
        goods_code: this.mesFormTop.row.goods_code || null,
        // 商品属性ID（无属性请传空）
        goods_attr: '',
        // 商品单位ID
        goods_unit:
          this.mesFormTop.row.goods_unit || this.mesFormTop.row.unit_id || null,
        // 仓库ID
        store: '',
        // 数量
        number: this.mesFormTop.row.number || null,
        // 商品单价
        unit_price: this.mesFormTop.row.unit_price || null,
        // 商品含税单价
        tax_included: this.mesFormTop.row.unit_price || null,
        // 折扣率
        discount: '',
        // 折扣额
        dis_money: '',
        // 购货金额
        all_money: this.mesFormTop.row.money || null,
        // 税率
        tax_rate: 0,
        // 税额
        tax_money: '',
        // 价税合计
        money_tax_price: this.mesFormTop.row.money || null,
        // 当前变动字段
        now_field: now_field ? now_field : null
      }
      const res = await this.$api.buy.common.formatInfo(postForm)
      if (res.code == 200) {
        console.log(res, '888')
        this.mesFormTop.row.number = res.data.number
        this.mesFormTop.row.unit_price = res.data.unit_price
        this.mesFormTop.row.all_money = res.data.all_money
        this.mesFormTop.row.basic_nmber = res.data.basic_nmber
      }
    },
    //获取商品属性
    getProperty() {
      console.log(getApp().globalData.goods.list[this.index].id)
      let form = {
        id:
          getApp().globalData.goods.list[this.index].goods_id ||
          getApp().globalData.goods.list[this.index].id
      }
      this.$api.source.goods.getgoodsauxiliary(form).then((res) => {
        if (res.code == 200) {
          res.data.auxiliary_data =
            res.data.auxiliary_data ? res.data.auxiliary_data : []
          res.data.auxiliary_data.forEach((item) => {
            item.id = item.attribute_id
            item.name = item.attr_name
          })
          this.mesFormTop.row.goods_attr =
            getApp().globalData.goods.list[this.index].goods_attr //拿到是个数
          let arr = res.data.auxiliary_data.filter((item) => {
            return item.attribute_id == this.mesFormTop.row.goods_attr
          })
          this.mesFormTop.row.attr_name =
            arr.length > 0 ? arr[0].attr_name : null
        }
      })
    },
    //获取仓库列表
    async getStores(keyword, newId) {
      await this.$api.source.stores
        .index({
          keyword,
          page: -1
        })
        .then((res) => {
          res.data.list.forEach((item) => {
            if (item.id == newId) {
              this.mesFormTop.row.stores_name = item.name
            }
          })
          if (res.code == 200) {
            this.mesFormTop.items.forEach((item) => {
              if (item.title === '仓库') {
                // item.slots.select.options = res.data.list
              }
            })
          }
        })
    }
  },
  onLoad(options) {
    this.index = options.index
    if (getApp().globalData.goods.list[this.index].batch != 1) {
      this.mesFormTop.items.splice(6, 4)
    }

    //判断是否是属性商品
    if (getApp().globalData.goods.list[this.index].auxiliary != 1) {
      this.mesFormTop.items.splice(3, 1)
    }
    this.mesFormTop.row = getApp().globalData.goods.list[this.index]
    this.remark.row.remark = getApp().globalData.goods.list[this.index].remark
    this.getStores(null, this.mesFormTop.row.stores_id)
    this.getProperty() //获取属性列表
    this.mesFormTop.row.basic_nmber = this.mesFormTop.row.number
  }
}
</script>

<style lang="less" scoped>
</style>
